/**
 * 文件名称：ChannelManager.java
 * <p>
 * 功能:
 */
package netty;

import io.netty.channel.ChannelHandlerContext;

import java.util.concurrent.ConcurrentHashMap;

/**
 * ChannelManager class 记录了所有的链接channel 和 devId 之间的关系
 *
 * @author helloworldyu
 * @data 2017/10/30
 */
public class ChannelManager {
    /**
     * String : devid 或者设备唯一标识符 SocketChannel : 链接通道
     */
    private ConcurrentHashMap<String, ChannelHandlerContext> devCtxMap = new ConcurrentHashMap<>();
    private double lastUpdate;

    /**
     * 增加一个链接
     *
     * @param id
     * @param ctx
     */
    public void add(String id, ChannelHandlerContext ctx) {
        // ============== 执行Add ==============
        devCtxMap.put(id, ctx);
        lastUpdate = System.currentTimeMillis();
    }

    public ChannelHandlerContext get(String devId) {
        return devCtxMap.get(devId);
    }

    /**
     * 删除一个链接
     *
     * @param devid
     */
    public void remove(String devid) {
        devCtxMap.remove(devid);
    }

}